home *** CD-ROM | disk | FTP | other *** search
- /* Kevo -- a prototype-based object-oriented language */
- /* (c) Antero Taivalsaari 1991-1993 */
- /* Some parts (c) Antero Taivalsaari 1986-1988 */
- /* main.c: Kevo system initialization */
-
- #include "global.h"
-
- static char kevo[] = "Kevo Interactive Compiler Kernel";
- static char author[] = "Copyright (c) 1992 Antero Taivalsaari";
-
- void main(argc, argv)
- int argc;
- char* argv[];
- {
- PAIR* systemInitPair;
-
- printf("Loading the image file 'kevo.img'...\n");
-
- initRootContexts(); /* Initialize root contexts for names (context.c) */
- initPrimitives(); /* Add (portable) primitives to root context (prim.c) */
- initPortedPrims(); /* Add non-portable primitives (portPrim.c) */
-
- openImage(argc, argv); /* Open the image file (image.c) */
- loadImage(); /* Load the image file to the system (image.c) */
-
- initRootFamilies(); /* Add the clone family lists to basic contexts */
- initVariables(); /* Initialize certain variables (image.c) */
- initStacks(); /* Initialize execution stacks (kernel.c) */
- initFiles(); /* Initialize standard files (files.c) */
-
- /* Search the 'boot' operation from the root context */
- systemInitPair = findPairInThis(rootContext, "SystemInit");
- if (systemInitPair) {
- ip = (int**)systemInitPair->ofa->mfa;
-
- initSignals(); /* Set the signal handler function (signals.c) */
- initGUI(); /* Initialize graphical user interface (portEvents.c) */
-
- preemptiveInterpreter(); /* Start the preemptive inner interpreter (kernel.c) */
- }
- else {
- /* printf("%s: 'SystemInit' operation missing from image file \"%s\".\n", argv[0], argv[1]); */
- printf("'SystemInit' operation missing from the image file 'kevo.img'.\nCannot continue. Exiting.\n");
- exit(1);
- }
- }
-
-
-